import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import model.Arquero;
import model.Club;
import model.Defensor;
import model.Delantero;
import model.Mediocampista;
import model.Participante;
import model.Jugador;


public class elGranDT {

	public Map<String,Jugador> jugadores; 
	public Map<String,Club> clubs;
	
	public void generarJugadores(){
		this.jugadores = new HashMap<String,Jugador>();
		
		Jugador a1 = new Jugador("Abondancieri",new Arquero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("a1", a1);
		Jugador a2 = new Jugador("Bossio ",new Arquero(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("a2", a2);
		Jugador a3 = new Jugador("Vega",new Arquero(),(Club)this.clubs.get("River"));
		this.jugadores.put("a3", a3);
		Jugador a4 = new Jugador("Montoya",new Arquero(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("a4", a4);
		Jugador a5 = new Jugador("Orion",new Arquero(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("a5", a5);
		Jugador a6 = new Jugador("Migliore ",new Arquero(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("a6", a6);
		
		Jugador d1 = new Jugador("Papa",new Defensor(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("d1", d1);
		Jugador d2 = new Jugador("Angeleri",new Defensor(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("d2", d2);
		Jugador d3 = new Jugador("Roncaglia",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d3", d3);
		Jugador d4 = new Jugador("Ibarra",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d4", d4);
		Jugador d5 = new Jugador("Morel",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d5", d5);
		Jugador d6 = new Jugador("Caceres",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d6", d6);
		Jugador d7 = new Jugador("Krupoviesa",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d7", d7);
		Jugador d8 = new Jugador("Shaffer",new Defensor(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("d8", d8);
		Jugador d9 = new Jugador("Garcia",new Defensor(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("d9", d9);
		Jugador d10 = new Jugador("Peppino",new Defensor(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("d10", d10);
		Jugador d11 = new Jugador("Mercado",new Defensor(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("d11", d11);
		Jugador d12 = new Jugador("Gerlo",new Defensor(),(Club)this.clubs.get("River"));
		this.jugadores.put("d12", d12);
		Jugador d13 = new Jugador("Ferrari",new Defensor(),(Club)this.clubs.get("River"));
		this.jugadores.put("d13", d13);
		Jugador d14 = new Jugador("Sanchez",new Defensor(),(Club)this.clubs.get("River"));
		this.jugadores.put("d14", d14);
		Jugador d15 = new Jugador("Villagra",new Defensor(),(Club)this.clubs.get("River"));
		this.jugadores.put("d15", d15);
		Jugador d16 = new Jugador("Dominguez",new Defensor(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("d16", d16);
		Jugador d17 = new Jugador("Ponce",new Defensor(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("d17", d17);
		Jugador d18 = new Jugador("Diaz",new Defensor(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("d18", d18);
		Jugador d19 = new Jugador("Alayes",new Defensor(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("d19", d19);
		Jugador d20 = new Jugador("Angeleri",new Defensor(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("d20", d20);
		Jugador d21 = new Jugador("Re",new Defensor(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("d21", d21);
		Jugador d22 = new Jugador("Desabato",new Defensor(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("d22", d22);
		Jugador d23 = new Jugador("Aguirre",new Defensor(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("d23", d23);
		Jugador d24 = new Jugador("Bottinelli",new Defensor(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("d23", d24);
		Jugador d25 = new Jugador("Gonzalez",new Defensor(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("d23", d25);
		Jugador d26 = new Jugador("Mendez",new Defensor(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("d23", d26);
		
		Jugador m1 = new Jugador("Riquelme",new Mediocampista(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("m1", m1);
		Jugador m2 = new Jugador("Gallardo",new Mediocampista(),(Club)this.clubs.get("River"));
		this.jugadores.put("m2", m2);
		Jugador m3 = new Jugador("Battaglia",new Mediocampista(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("m3", m3);
		Jugador m4 = new Jugador("Ledesma",new Mediocampista(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("m4", m4);
		Jugador m5 = new Jugador("Ahumada",new Mediocampista(),(Club)this.clubs.get("River"));
		this.jugadores.put("m5", m5);
		Jugador m6 = new Jugador("Gaitan",new Mediocampista(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("m6", m6);
		Jugador m7 = new Jugador("Gracian",new Mediocampista(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("m7", m7);
		Jugador m8 = new Jugador("Buonanotte",new Mediocampista(),(Club)this.clubs.get("River"));
		this.jugadores.put("m8", m8);
		Jugador m9 = new Jugador("Fernandez",new Mediocampista(),(Club)this.clubs.get("River"));
		this.jugadores.put("m9", m9);
		Jugador m10 = new Jugador("Barrientos",new Mediocampista(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("m10", m10);
		Jugador m11 = new Jugador("Santana",new Mediocampista(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("m11", m11);
		Jugador m12 = new Jugador("Solari",new Mediocampista(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("m12", m12);
		Jugador m13 = new Jugador("Castroman",new Mediocampista(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("m13", m13);
		Jugador m14 = new Jugador("Chatruc",new Mediocampista(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("m14", m14);
		Jugador m15 = new Jugador("Gonzalez",new Mediocampista(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("m15", m15);
		Jugador m16 = new Jugador("Yacob",new Mediocampista(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("m16", m16);
		Jugador m17 = new Jugador("Galvan",new Mediocampista(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("m17", m17);
		Jugador m18 = new Jugador("Perez",new Mediocampista(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("m18", m18);
		Jugador m19 = new Jugador("Sanchez",new Mediocampista(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("m19", m19);
		Jugador m20 = new Jugador("Veron",new Mediocampista(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("m20", m20);
		Jugador m21 = new Jugador("Moralez",new Mediocampista(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("m21", m21);
		Jugador m22 = new Jugador("Sornoza",new Mediocampista(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("m22", m22);
		Jugador m23 = new Jugador("Zapata",new Mediocampista(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("m23", m23);
		Jugador m24 = new Jugador("Cubero",new Mediocampista(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("m24", m24);
		
		Jugador del1 = new Jugador("Palermo",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del1", del1);
		Jugador del2 = new Jugador("Palacio",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del2", del2);
		Jugador del3 = new Jugador("Falcao",new Delantero(),(Club)this.clubs.get("River"));
		this.jugadores.put("del3", del3);
		Jugador del4 = new Jugador("Fabbiani",new Delantero(),(Club)this.clubs.get("River"));
		this.jugadores.put("del4", del4);
		Jugador del5 = new Jugador("Biatri",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del5", del5);
		Jugador del6 = new Jugador("Figueroa",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del6", del6);
		Jugador del7 = new Jugador("Garcia",new Delantero(),(Club)this.clubs.get("River"));
		this.jugadores.put("del7", del7);
		Jugador del8 = new Jugador("Rosales",new Delantero(),(Club)this.clubs.get("River"));
		this.jugadores.put("del8", del8);
		Jugador del9 = new Jugador("Larrivey",new Delantero(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("del9", del9);
		Jugador del10 = new Jugador("Lopez",new Delantero(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("del10", del10);
		Jugador del11 = new Jugador("Martinez",new Delantero(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("del11", del11);
		Jugador del12 = new Jugador("Nanni",new Delantero(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("del12", del12);
		Jugador del13 = new Jugador("Bergessio",new Delantero(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("del13", del13);
		Jugador del14 = new Jugador("Silvera",new Delantero(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("del14", del14);
		Jugador del15 = new Jugador("Romeo",new Delantero(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("del15", del15);
		Jugador del16 = new Jugador("Fornaroli",new Delantero(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("del16", del16);
		Jugador del17 = new Jugador("Boselli",new Delantero(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("del17", del17);
		Jugador del18 = new Jugador("Calderon",new Delantero(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("del18", del18);
		Jugador del19 = new Jugador("Fernandez",new Delantero(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("del19", del19);
		Jugador del20 = new Jugador("Lentini",new Delantero(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("del20", del20);
		Jugador del21 = new Jugador("Ramirez",new Delantero(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("del21", del21);
		Jugador del22 = new Jugador("Vigneri",new Delantero(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("del22", del22);
		Jugador del23 = new Jugador("Luguercio",new Delantero(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("del23", del23);
		Jugador del24 = new Jugador("Caballero",new Delantero(),(Club)this.clubs.get("Racing"));
		this.jugadores.put("del24", del24);
		
	}
	
	public void generarClubs(){
		this.clubs = new HashMap<String, Club>();
		
		Club c1 = new Club("Boca");
		this.clubs.put("Boca",c1);
		Club c2 = new Club("River");
		this.clubs.put("River",c2);
		Club c3 = new Club("SanLorenzo");
		this.clubs.put("SanLorenzo",c3);
		Club c4 = new Club("Racing");
		this.clubs.put("Racing",c4);
		Club c5 = new Club("Estudiantes");
		this.clubs.put("Estudiantes",c5);
		Club c6 = new Club("Velez");
		this.clubs.put("Velez",c6);
	}
	
	public void vincularJugadoresClubs(){
		// vinculo a cada club con sus jugadores
		for (Iterator<Jugador> iter = this.jugadores.values().iterator(); iter.hasNext();) {
			Jugador jugador = (Jugador) iter.next();
			Club club = (Club)clubs.get(jugador.getClub().getNombre());
			club.getJugadores().add(jugador);
		}
	}
	
	public static void main(String[] args) {
		elGranDT campeonato = new elGranDT();

		// genero los clubes
		campeonato.generarClubs();
		
		// genero los jugadores
		campeonato.generarJugadores();
		
		campeonato.vincularJugadoresClubs();
			
		
		Participante p1 = new Participante("Pepe",1);
		p1.armarEquipoDummy(campeonato.jugadores);		

		p1.validarEquipo();
		
	}
	
	
	
	

}
